package android.Spider;

import net.idugic.dto.ProfileDTO;
import android.os.Bundle;

public class ProfileUser
{
	static ProfileUser toProfile(ProfileDTO src)
	{
		ProfileUser usr = new ProfileUser();
		usr.m_strFirstName = src.getFirst_name();
		usr.m_strLastName = src.getLast_name();
		usr.m_strGMail = src.getG_mail();
		usr.m_nInterests = src.getInterests();
		usr.m_nInterests = Math.min(usr.m_nInterests, 127);
		usr.m_nOccupation = src.getOccupation();
		usr.m_nOccupation = usr.m_nOccupation == Other ? Other : Math.min(usr.m_nOccupation, Services);
		usr.m_nCountry = src.getCountry();
		usr.m_strTown = src.getTown();
		usr.m_bMale = (src.getMale() == 1);
		usr.m_nAvatar = src.getAvatar();
		usr.m_nAvatar = Math.min(usr.m_nAvatar, idImages.length - 1);
		
		return usr;
	}

	ProfileDTO toDTO()
	{
		ProfileDTO dest = new ProfileDTO();
		dest.setFirst_name(m_strFirstName);
		dest.setLast_name(m_strLastName);
		dest.setPassword(m_strPassword);
		dest.setG_mail(m_strGMail);
		dest.setInterests(m_nInterests);
		dest.setOccupation(m_nOccupation);
		dest.setCountry(m_nCountry);
		dest.setTown(m_strTown);
		dest.setMale(m_bMale ? 1 : 0);
		dest.setAvatar(m_nAvatar);
		
		return dest;
	}

	String m_strFirstName = "";
	String m_strLastName = "";
	String m_strPassword = "";
	String m_strGMail = "";

	// Possible interest values
	static final int Entertainment = 1;
	static final int Sport = 2;
	static final int Fashion = 4;
	static final int Tech = 8;
	static final int Celebrity = 16;
	static final int Politics = 32;
	static final int Misc = 64;

	Integer m_nInterests = new Integer(0);

	static final int Computers = 0;
	static final int Design = 1;
	static final int Education = 2;
	static final int Health = 3;
	static final int Industry = 4;
	static final int Services = 5;
	static final int Other = 1000;
	
	Integer m_nOccupation = new Integer(1000);
	
    static final String[] COUNTRIES = new String[] {
    	"Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra",
    	"Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Argentina",
    	"Armenia", "Aruba", "Australia", "Austria", "Azerbaijan",
    	"Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium",
    	"Belize", "Benin", "Bermuda", "Bhutan", "Bolivia",
    	"Bosnia and Herzegovina", "Botswana", "Bouvet Island", "Brazil", "British Indian Ocean Territory",
    	"British Virgin Islands", "Brunei", "Bulgaria", "Burkina Faso", "Burundi",
    	"Cote d'Ivoire", "Cambodia", "Cameroon", "Canada", "Cape Verde",
    	"Cayman Islands", "Central African Republic", "Chad", "Chile", "China",
    	"Christmas Island", "Cocos (Keeling) Islands", "Colombia", "Comoros", "Congo",
    	"Cook Islands", "Costa Rica", "Croatia", "Cuba", "Cyprus", "Czech Republic",
    	"Democratic Republic of the Congo", "Denmark", "Djibouti", "Dominica", "Dominican Republic",
    	"East Timor", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea",
    	"Estonia", "Ethiopia", "Faeroe Islands", "Falkland Islands", "Fiji", "Finland",
    	"Former Yugoslav Republic of Macedonia", "France", "French Guiana", "French Polynesia",
    	"French Southern Territories", "Gabon", "Georgia", "Germany", "Ghana", "Gibraltar",
    	"Greece", "Greenland", "Grenada", "Guadeloupe", "Guam", "Guatemala", "Guinea", "Guinea-Bissau",
    	"Guyana", "Haiti", "Heard Island and McDonald Islands", "Honduras", "Hong Kong", "Hungary",
    	"Iceland", "India", "Indonesia", "Iran", "Iraq", "Ireland", "Israel", "Italy", "Jamaica",
    	"Japan", "Jordan", "Kazakhstan", "Kenya", "Kiribati", "Kuwait", "Kyrgyzstan", "Laos",
    	"Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg",
    	"Macau", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Marshall Islands",
    	"Martinique", "Mauritania", "Mauritius", "Mayotte", "Mexico", "Micronesia", "Moldova",
    	"Monaco", "Mongolia", "Montenegro", "Montserrat", "Morocco", "Mozambique", "Myanmar", "Namibia",
    	"Nauru", "Nepal", "Netherlands", "Netherlands Antilles", "New Caledonia", "New Zealand",
    	"Nicaragua", "Niger", "Nigeria", "Niue", "Norfolk Island", "North Korea", "Northern Marianas",
    	"Norway", "Oman", "Pakistan", "Palau", "Panama", "Papua New Guinea", "Paraguay", "Peru",
    	"Philippines", "Pitcairn Islands", "Poland", "Portugal", "Puerto Rico", "Qatar",
    	"Reunion", "Romania", "Russia", "Rwanda", "Sqo Tome and Principe", "Saint Helena",
    	"Saint Kitts and Nevis", "Saint Lucia", "Saint Pierre and Miquelon",
    	"Saint Vincent and the Grenadines", "Samoa", "San Marino", "Saudi Arabia", "Senegal", "Serbia",
    	"Seychelles", "Sierra Leone", "Singapore", "Slovakia", "Slovenia", "Solomon Islands",
    	"Somalia", "South Africa", "South Georgia and the South Sandwich Islands", "South Korea",
    	"Spain", "Sri Lanka", "Sudan", "Suriname", "Svalbard and Jan Mayen", "Swaziland", "Sweden",
    	"Switzerland", "Syria", "Taiwan", "Tajikistan", "Tanzania", "Thailand", "The Bahamas",
    	"The Gambia", "Togo", "Tokelau", "Tonga", "Trinidad and Tobago", "Tunisia", "Turkey",
    	"Turkmenistan", "Turks and Caicos Islands", "Tuvalu", "Virgin Islands", "Uganda",
    	"Ukraine", "United Arab Emirates", "United Kingdom",
    	"United States", "United States Minor Outlying Islands", "Uruguay", "Uzbekistan",
    	"Vanuatu", "Vatican City", "Venezuela", "Vietnam", "Wallis and Futuna", "Western Sahara",
    	"Yemen", "Zambia", "Zimbabwe"
    };
    
	Integer m_nCountry = new Integer(226);
	String m_strTown = "";
	
	Boolean m_bMale = null;
	Integer m_nAvatar = new Integer(5);
	
	private static String s_strFirstName = "FirstName";
	private static String s_strLastName = "LastName";
	private static String s_strPassword = "Password";
	private static String s_strGMail = "GMail";
	private static String s_strInterests = "Interests";
	private static String s_strOccupation = "Occupation";
	private static String s_strCountry = "Country";
	private static String s_strTown = "Town";
	private static String s_strMale = "Male";
	private static String s_strAvatar = "Avatar";

	public Bundle toBundle()
	{
		Bundle bundle = new Bundle();
		
		bundle.putString(s_strFirstName, m_strFirstName);
		bundle.putString(s_strLastName, m_strLastName);
		bundle.putString(s_strPassword, m_strPassword);
		bundle.putString(s_strGMail, m_strGMail);
		bundle.putInt(s_strInterests, m_nInterests);
		bundle.putInt(s_strOccupation, m_nOccupation);
		bundle.putInt(s_strCountry, m_nCountry);
		bundle.putString(s_strTown, m_strTown);
		if (m_bMale != null)
			bundle.putBoolean(s_strMale, m_bMale);
		
		bundle.putInt(s_strAvatar, m_nAvatar);
		
		return bundle;
	}
	
	public void fromBundle(Bundle bundle)
	{
		m_strFirstName = bundle.getString(s_strFirstName);
		m_strLastName = bundle.getString(s_strLastName);
		m_strPassword = bundle.getString(s_strPassword);
		m_strGMail = bundle.getString(s_strGMail);
		m_nInterests = bundle.getInt(s_strInterests);
		m_nOccupation = bundle.getInt(s_strOccupation);
		m_nCountry = bundle.getInt(s_strCountry);
		m_strTown = bundle.getString(s_strTown);
		m_bMale = bundle.getBoolean(s_strMale);
		m_nAvatar = bundle.getInt(s_strAvatar);
	}
	
    public static int[] idImages = {
            R.drawable.axeinhead,
            R.drawable.chinaman,
            R.drawable.clownman,
            R.drawable.devil,
            R.drawable.dracula,
            R.drawable.gentlman,
            R.drawable.girl,
            R.drawable.headsetman,
            R.drawable.littlekid,
            R.drawable.milkman,
            R.drawable.nerd,
            R.drawable.orangeman
    };
	
    public static final int arrInterestsFlags[] = {
		ProfileUser.Entertainment,
		ProfileUser.Sport,
		ProfileUser.Fashion,
		ProfileUser.Tech,
		ProfileUser.Celebrity,
		ProfileUser.Politics,
		ProfileUser.Misc
	};
}
